/*
 * Node.hpp
 *
 *  Created on: Jan 12, 2014
 *      Author: knuke
 */

#ifndef NODE_HPP_
#define NODE_HPP_

#include <vector>
#include <string>
#include <GMath/GMath.hpp>

#include "Types.hpp"

namespace gengine
{
  class Mesh;
  class Node;

  class Node
  {
  public:
    Node();
    virtual ~Node() throw();

    void addChild(Node* child);
    void addMesh(Mesh* mesh);

  private:
    gmath::Mat4f transform_matrix_;
    std::vector<Mesh*> meshes_;
    std::vector<Node*> children_;
  };

} /* namespace gengine */

#endif
